사용자 인증 (User Authentication)
개요
사용자 인증(User Authentication)은 디지털 시스템, 네트워크, 또는 애플리케이션에 접근하려는 주체(사용자, 기기, 프로세스 등)의 신원을 검증하는 보안 프로세스입니다. 즉, "당신이 주장하는 사람이 맞습니까?"라는 질문에 대한 답을 찾는 과정입니다. 인증은 정보 보안의 가장 기본적이면서도 핵심적인 요소로, 무단 접근을 방지하고 데이터 무결성 및 기밀성을 유지하는 데 필수적입니다.
인증은 일반적으로 무엇을 알고 있는가(비밀번호), 무엇을 가지고 있는가(스마트폰, 보안 토큰), 무엇인가(지문, 홍채)의 세 가지 요소 중 하나 이상을 조합하여 이루어집니다. 현대 보안 환경에서는 단일 요소 인증의 취약성을 보완하기 위해 다중 요소 인증(MFA)이 표준으로 자리 잡고 있습니다.
인증의 주요 방식
사용자 인증은 검증에 사용되는 정보의 유형에 따라 크게 세 가지 방식으로 분류됩니다.
1. 지식 기반 인증 (Something You Know)
가장 전통적인 방식으로, 사용자가 기억하고 있는 비밀 정보를 통해 신원을 증명합니다.
* 비밀번호 (Password): 문자, 숫자, 특수문자의 조합으로 구성됩니다.
* PIN 번호: 주로 금융 거래나 기기 잠금 해제에 사용됩니다.
* 질문/답변: 개인적인 정보(예: 출생지, 애완동물 이름)를 기반으로 합니다.
* 단점: 비밀번호 추측, 피싱, 키로깅(Keylogging) 공격에 취약하며, 사용자가 복잡한 비밀번호를 기억하기 어려워 재사용하는 경향이 있습니다.
2. 소유 기반 인증 (Something You Have)
사용자가 물리적으로 보유하고 있는 장치나 객체를 통해 신원을 증명합니다.
* 스마트폰: SMS 인증 코드, OTP(일회용 비밀번호) 앱, 푸시 알림 승인.
* 보안 토큰: 하드웨어 기반의 OTP를 생성하는 장치(YubiKey 등).
* 스마트 카드: 내장된 칩을 통해 디지털 인증서를 저장하고 전송합니다.
* 단점: 기기의 분실, 도난, 또는 SIM 스왑 공격(SIM Swap Attack)의 위험이 있습니다.
3. 생체 기반 인증 (Something You Are)
사용자의 고유한 생체 특징을 분석하여 신원을 확인합니다.
* 지문 인식: 가장 널리 보급된 생체 인증 방식입니다.
* 얼굴 인식: 2D 또는 3D 구조광을 활용합니다.
* 홍채/망막 스캔: 높은 정확도를 제공하지만, 편의성 측면에서 제한적입니다.
* 음성 인식: 화자의 음성 특성을 분석합니다.
* 단점: 생체 정보는 한번 유출되면 변경이 불가능하며, 사본 생성(가짜 지문 등)에 대한 보안적 도전 과제가 존재합니다.
다중 요소 인증 (MFA) 및 2FA
다중 요소 인증(Multi-Factor Authentication, MFA)은 서로 다른 두 가지 이상의 인증 요소를 조합하여 보안을 강화하는 방식입니다. 가장 일반적인 형태인 이중 요소 인증(2FA)은 주로 '지식'과 '소유' 요소를 결합합니다.
예를 들어, 온라인 뱅킹 로그인 시 다음과 같은 과정이 적용됩니다:
1. 1단계: 아이디와 비밀번호 입력 (Something You Know)
2. 2단계: 등록된 스마트폰으로 전송된 인증번호 입력 또는 앱 승인 (Something You Have)
이러한 방식은 비밀번호가 유출되더라도 제3자의 접근을 차단할 수 있어, 현대 사이버 보안에서 강력하게 권장됩니다.
현대 인증 프로토콜 및 기술
단순한 비밀번호 검증 이상으로, 웹 및 클라우드 환경에서는 표준화된 인증 프로토콜이 사용됩니다.
- OAuth 2.0: 권한 위임(Authorization) 프레임워크로, 사용자가 자신의 데이터를 제3자 애플리케이션에 안전하게 공유할 수 있도록 합니다. (예: '구글 계정으로 로그인')
- OpenID Connect: OAuth 2.0 위에 구축된 인증 레이어로, 사용자의 신원 정보를 표준화된 방식으로 확인합니다.
2. SAML (Security Assertion Markup Language)
- 주로 기업 환경에서 단일 로그인(SSO, Single Sign-On)을 구현하는 데 사용됩니다. 한 번의 인증으로 여러 기업 애플리케이션에 접근할 수 있게 해주며, XML 기반의 표준입니다.
- 비밀번호 없는 비밀번호(Passkey) 시대를 여는 기술로, 공개키 기반의 강력한 인증을 지원합니다. 하드웨어 보안 키나 기기의 생체 인증을 활용하여 피싱 공격에 매우 강인합니다.
인증 시스템의 보안 위협과 대응
인증 시스템은 다양한 사이버 공격의 표적이 됩니다. 주요 위협과 대응 방안은 다음과 같습니다.
| 위협 유형 |
설명 |
대응 방안 |
| 피싱 (Phishing) |
가짜 로그인 페이지를 만들어 정보를 탈취 |
교육, 다중 요소 인증(MFA) 도입, 도메인 검증 |
| 브루트 포스 (Brute Force) |
비밀번호를 무작위로 대입하여 추측 |
계정 잠금 정책, CAPTCHA, 느린 해싱 알고리즘 사용 |
| 리플레이 공격 (Replay Attack) |
인증 데이터를 가로채어 재전송 |
타임스탬프, 논스(Nonce) 사용, 세션 토큰 관리 |
| 크레덴셜 스투핑 |
다른 사이트에서 유출된 계정 정보를 다른 사이트에 시도 |
계정 모니터링, 고유한 비밀번호 사용 권장 |
결론 및 미래 전망
사용자 인증은 단순한 기술적 절차를 넘어, 디지털 신원 관리의 핵심입니다. 과거에는 편의성을 위해 비밀번호 하나에 의존했다면, 현재는 보안과 편의성의 균형을 맞추기 위해 생체 인증, 행동 분석(Behavioral Analytics), 그리고 비밀번호 없는 인증(Passkey)으로 진화하고 있습니다.
향후 인증 시스템은 사용자의 명시적인 개입 없이 맥락(Context)을 기반으로 신원을 판단하는 맥락 기반 인증(Context-Aware Authentication)으로 발전할 것으로 예상됩니다. 이는 사용자의 위치, 기기 상태, 네트워크 환경 등을 실시간으로 분석하여 위험도가 낮은 경우 자동 인증을 수행하는 방식입니다. 조직과 개인 모두 지속적인 보안 인식 제고와 최신 인증 기술의 도입을 통해 디지털 자산을 보호해야 합니다.
관련 문서 및 참고 자료
- [다중 요소 인증 (MFA)]
- [단일 로그인 (SSO)]
- [생체 인증 기술]
- [OWASP 인증 가이드라인]
- [FIDO Alliance 공식 문서]
인증과 인가(Authorization)의 차이
인증과 인가는 보안 프로세스에서 서로 밀접하게 연관되어 있어 혼동하기 쉬우나, 그 목적과 단계는 명확히 구분됩니다. 인증이 "당신은 누구인가?"를 확인하는 과정이라면, 인가는 "당신이 이 작업을 수행할 권한이 있는가?"를 결정하는 과정입니다.
일반적으로 인증이 먼저 이루어진 후, 인증된 신원을 바탕으로 인가 단계가 진행되는 단계적 관계를 가집니다.
| 구분 |
인증 (Authentication) |
인가 (Authorization) |
| 핵심 질문 |
당신은 누구인가? (Who are you?) |
당신은 무엇을 할 수 있는가? (What can you do?) |
| 목적 |
사용자의 신원 확인 및 검증 |
리소스 접근 권한 부여 및 제한 |
| 확인 대상 |
ID/PW, 생체 정보, OTP 등 |
역할(Role), 권한(Permission), 정책(Policy) |
| 수행 시점 |
시스템 접근의 첫 단계 |
인증 완료 후 리소스 요청 시마다 수행 |
| 예시 |
로그인 성공, 패스워드 일치 확인 |
관리자 페이지 접근 권한, 파일 읽기/쓰기 권한 |
전통적인 인증 3요소(지식, 소유, 생체) 외에도, 현대의 보안 시스템은 사용자의 맥락을 분석하는 추가적인 요소를 도입하여 보안성을 높이고 있습니다.
- 위치 기반 인증 (Where you are): 사용자가 접속한 IP 주소, GPS 좌표, 접속 국가 등을 분석합니다. 평소 한국에서 접속하던 사용자가 갑자기 해외 IP로 접속을 시도할 경우, 추가 인증을 요구하거나 접근을 차단하는 방식으로 활용됩니다.
- 행동 기반 인증 (How you behave): 사용자의 고유한 습관을 분석합니다. 키보드 타이핑 속도, 마우스 움직임의 궤적, 스마트폰을 쥐는 각도 및 터치 압력 등을 학습하여, 신원 정보가 일치하더라도 평소 행동 패턴과 다를 경우 부정 사용으로 간주합니다.
최신 인증 위협과 심화 대응책
최근의 공격 기법은 단순한 정보 탈취를 넘어, 인증 프로세스의 허점이나 사용자의 심리를 이용하는 방향으로 진화하고 있습니다.
| 위협 유형 |
설명 |
대응 방안 |
| 세션 하이재킹 (Session Hijacking) |
유효한 세션 ID를 가로채어 사용자로 위장하여 시스템에 접근 |
세션 타임아웃 설정, HTTPS 강제 적용, 세션 ID의 주기적 갱신(Rotation) |
| MFA 피로 공격 (MFA Fatigue) |
사용자에게 수많은 MFA 푸시 알림을 보내, 실수나 짜증으로 '승인'을 누르게 유도 |
숫자 매칭(Number Matching) 도입, 알림 횟수 제한 및 계정 일시 잠금 |
MFA 피로 공격 방어 시나리오: 숫자 매칭(Number Matching)
단순한 '승인/거절' 버튼 방식의 푸시 알림은 사용자의 부주의를 유도하기 쉽습니다. 이를 방지하기 위한 숫자 매칭 시나리오는 다음과 같습니다.
1. 요청: 사용자가 로그인 화면에서 ID/PW를 입력합니다.
2. 코드 제시: 서버는 로그인 화면에 임의의 숫자(예: 42)를 표시합니다.
3. 푸시 전송: 사용자의 스마트폰으로 MFA 푸시 알림이 전송됩니다.
4. 검증: 사용자는 스마트폰 앱 내의 입력창에 로그인 화면에 표시된 숫자 42를 직접 입력해야만 인증이 완료됩니다.
5. 결과: 공격자가 푸시를 무차별적으로 보내더라도, 사용자가 로그인 화면의 숫자를 알 수 없으므로 무분별한 승인을 원천적으로 차단합니다.
현대적 인증 구현: JWT vs 세션 방식
웹 애플리케이션의 아키텍처(모놀리식 vs 마이크로서비스)에 따라 인증 상태를 유지하는 방식이 달라집니다.
1. 세션 기반 인증 (Session-based)
서버의 메모리나 데이터베이스에 사용자 상태를 저장하고, 클라이언트에게는 Session ID만 전달하는 방식입니다. 서버가 상태를 관리하는 Stateful 구조입니다.
2. JWT 기반 인증 (JSON Web Token)
인증 정보를 암호화된 토큰 형태로 클라이언트가 직접 보유하는 방식입니다. 서버는 토큰의 유효성만 검증하며 상태를 저장하지 않는 Stateless 구조입니다.
| 비교 항목 |
세션 (Session) |
JWT (JSON Web Token) |
| 저장 위치 |
서버 (Memory, DB, Redis 등) |
클라이언트 (Local Storage, Cookie 등) |
| 상태 유지 |
Stateful (서버가 상태를 기억함) |
Stateless (서버가 상태를 기억하지 않음) |
| 확장성 |
서버 확장 시 세션 공유 설정 필요 (Sticky Session 등) |
서버 간 공유 필요 없음 (수평 확장 용이) |
| 제어권 |
서버에서 즉시 세션 만료 가능 (강제 로그아웃) |
토큰 만료 전까지 제어 어려움 (Blacklist 필요) |
| 오버헤드 |
서버 메모리 사용량 증가 |
토큰 크기가 커질수록 네트워크 부하 증가 |
제로 트러스트(Zero Trust) 모델과 인증
제로 트러스트(Zero Trust)는 "절대 믿지 말고, 항상 검증하라(Never Trust, Always Verify)"는 철학을 바탕으로 한 보안 모델입니다. 기존의 경계 보안(Perimeter Security)이 내부 네트워크에 들어온 사용자를 신뢰했던 것과 달리, 제로 트러스트는 네트워크 위치와 상관없이 모든 요청을 잠재적 위협으로 간주합니다.
지속적 인증 (Continuous Authentication)
제로 트러스트 환경에서는 최초 1회 로그인으로 인증을 끝내지 않고, 세션이 유지되는 동안 지속적 인증을 수행합니다.
* 동적 위험 평가: 사용자의 IP 변경, 비정상적인 데이터 접근 패턴, 기기 보안 상태 변화 등을 실시간으로 모니터링합니다.
* 적응형 인증 (Adaptive Authentication): 위험 점수가 일정 수준을 넘어서면, 세션 도중에도 다시 MFA를 요구하거나 접근 권한을 즉시 회수합니다.
* 최소 권한 원칙: 인증된 사용자라도 업무 수행에 꼭 필요한 최소한의 권한만 부여하며, 요청 시마다 권한을 재검증합니다.
# 사용자 인증 (User Authentication)
## 개요
**사용자 인증**(User Authentication)은 디지털 시스템, 네트워크, 또는 애플리케이션에 접근하려는 주체(사용자, 기기, 프로세스 등)의 신원을 검증하는 보안 프로세스입니다. 즉, "당신이 주장하는 사람이 맞습니까?"라는 질문에 대한 답을 찾는 과정입니다. 인증은 정보 보안의 가장 기본적이면서도 핵심적인 요소로, 무단 접근을 방지하고 데이터 무결성 및 기밀성을 유지하는 데 필수적입니다.
인증은 일반적으로 **무엇을 알고 있는가**(비밀번호), **무엇을 가지고 있는가**(스마트폰, 보안 토큰), **무엇인가**(지문, 홍채)의 세 가지 요소 중 하나 이상을 조합하여 이루어집니다. 현대 보안 환경에서는 단일 요소 인증의 취약성을 보완하기 위해 다중 요소 인증(MFA)이 표준으로 자리 잡고 있습니다.
---
## 인증의 주요 방식
사용자 인증은 검증에 사용되는 정보의 유형에 따라 크게 세 가지 방식으로 분류됩니다.
### 1. 지식 기반 인증 (Something You Know)
가장 전통적인 방식으로, 사용자가 기억하고 있는 비밀 정보를 통해 신원을 증명합니다.
* **비밀번호 (Password)**: 문자, 숫자, 특수문자의 조합으로 구성됩니다.
* **PIN 번호**: 주로 금융 거래나 기기 잠금 해제에 사용됩니다.
* **질문/답변**: 개인적인 정보(예: 출생지, 애완동물 이름)를 기반으로 합니다.
* **단점**: 비밀번호 추측, 피싱, 키로깅(Keylogging) 공격에 취약하며, 사용자가 복잡한 비밀번호를 기억하기 어려워 재사용하는 경향이 있습니다.
### 2. 소유 기반 인증 (Something You Have)
사용자가 물리적으로 보유하고 있는 장치나 객체를 통해 신원을 증명합니다.
* **스마트폰**: SMS 인증 코드, OTP(일회용 비밀번호) 앱, 푸시 알림 승인.
* **보안 토큰**: 하드웨어 기반의 OTP를 생성하는 장치(YubiKey 등).
* **스마트 카드**: 내장된 칩을 통해 디지털 인증서를 저장하고 전송합니다.
* **단점**: 기기의 분실, 도난, 또는 SIM 스왑 공격(SIM Swap Attack)의 위험이 있습니다.
### 3. 생체 기반 인증 (Something You Are)
사용자의 고유한 생체 특징을 분석하여 신원을 확인합니다.
* **지문 인식**: 가장 널리 보급된 생체 인증 방식입니다.
* **얼굴 인식**: 2D 또는 3D 구조광을 활용합니다.
* **홍채/망막 스캔**: 높은 정확도를 제공하지만, 편의성 측면에서 제한적입니다.
* **음성 인식**: 화자의 음성 특성을 분석합니다.
* **단점**: 생체 정보는 한번 유출되면 변경이 불가능하며, 사본 생성(가짜 지문 등)에 대한 보안적 도전 과제가 존재합니다.
---
## 다중 요소 인증 (MFA) 및 2FA
**다중 요소 인증**(Multi-Factor Authentication, MFA)은 서로 다른 두 가지 이상의 인증 요소를 조합하여 보안을 강화하는 방식입니다. 가장 일반적인 형태인 **이중 요소 인증**(2FA)은 주로 '지식'과 '소유' 요소를 결합합니다.
예를 들어, 온라인 뱅킹 로그인 시 다음과 같은 과정이 적용됩니다:
1. **1단계**: 아이디와 비밀번호 입력 (Something You Know)
2. **2단계**: 등록된 스마트폰으로 전송된 인증번호 입력 또는 앱 승인 (Something You Have)
이러한 방식은 비밀번호가 유출되더라도 제3자의 접근을 차단할 수 있어, 현대 사이버 보안에서 강력하게 권장됩니다.
---
## 현대 인증 프로토콜 및 기술
단순한 비밀번호 검증 이상으로, 웹 및 클라우드 환경에서는 표준화된 인증 프로토콜이 사용됩니다.
### 1. OAuth 2.0 및 OpenID Connect (OIDC)
* **OAuth 2.0**: 권한 위임(Authorization) 프레임워크로, 사용자가 자신의 데이터를 제3자 애플리케이션에 안전하게 공유할 수 있도록 합니다. (예: '구글 계정으로 로그인')
* **OpenID Connect**: OAuth 2.0 위에 구축된 인증 레이어로, 사용자의 신원 정보를 표준화된 방식으로 확인합니다.
### 2. SAML (Security Assertion Markup Language)
* 주로 기업 환경에서 **단일 로그인**(SSO, Single Sign-On)을 구현하는 데 사용됩니다. 한 번의 인증으로 여러 기업 애플리케이션에 접근할 수 있게 해주며, XML 기반의 표준입니다.
### 3. FIDO2 및 WebAuthn
* 비밀번호 없는 비밀번호(Passkey) 시대를 여는 기술로, 공개키 기반의 강력한 인증을 지원합니다. 하드웨어 보안 키나 기기의 생체 인증을 활용하여 피싱 공격에 매우 강인합니다.
---
## 인증 시스템의 보안 위협과 대응
인증 시스템은 다양한 사이버 공격의 표적이 됩니다. 주요 위협과 대응 방안은 다음과 같습니다.
| 위협 유형 | 설명 | 대응 방안 |
| :--- | :--- | :--- |
| **피싱 (Phishing)** | 가짜 로그인 페이지를 만들어 정보를 탈취 | 교육, 다중 요소 인증(MFA) 도입, 도메인 검증 |
| **브루트 포스 (Brute Force)** | 비밀번호를 무작위로 대입하여 추측 | 계정 잠금 정책, CAPTCHA, 느린 해싱 알고리즘 사용 |
| **리플레이 공격 (Replay Attack)** | 인증 데이터를 가로채어 재전송 | 타임스탬프, 논스(Nonce) 사용, 세션 토큰 관리 |
| **크레덴셜 스투핑** | 다른 사이트에서 유출된 계정 정보를 다른 사이트에 시도 | 계정 모니터링, 고유한 비밀번호 사용 권장 |
---
## 결론 및 미래 전망
사용자 인증은 단순한 기술적 절차를 넘어, 디지털 신원 관리의 핵심입니다. 과거에는 편의성을 위해 비밀번호 하나에 의존했다면, 현재는 **보안과 편의성의 균형**을 맞추기 위해 생체 인증, 행동 분석(Behavioral Analytics), 그리고 비밀번호 없는 인증(Passkey)으로 진화하고 있습니다.
향후 인증 시스템은 사용자의 명시적인 개입 없이 맥락(Context)을 기반으로 신원을 판단하는 **맥락 기반 인증(Context-Aware Authentication)**으로 발전할 것으로 예상됩니다. 이는 사용자의 위치, 기기 상태, 네트워크 환경 등을 실시간으로 분석하여 위험도가 낮은 경우 자동 인증을 수행하는 방식입니다. 조직과 개인 모두 지속적인 보안 인식 제고와 최신 인증 기술의 도입을 통해 디지털 자산을 보호해야 합니다.
---
## 관련 문서 및 참고 자료
* [다중 요소 인증 (MFA)]
* [단일 로그인 (SSO)]
* [생체 인증 기술]
* [OWASP 인증 가이드라인]
* [FIDO Alliance 공식 문서]
## 인증과 인가(Authorization)의 차이
인증과 인가는 보안 프로세스에서 서로 밀접하게 연관되어 있어 혼동하기 쉬우나, 그 목적과 단계는 명확히 구분됩니다. **인증**이 "당신은 누구인가?"를 확인하는 과정이라면, **인가**는 "당신이 이 작업을 수행할 권한이 있는가?"를 결정하는 과정입니다.
일반적으로 인증이 먼저 이루어진 후, 인증된 신원을 바탕으로 인가 단계가 진행되는 단계적 관계를 가집니다.
| 구분 | 인증 (Authentication) | 인가 (Authorization) |
| :--- | :--- | :--- |
| **핵심 질문** | 당신은 누구인가? (Who are you?) | 당신은 무엇을 할 수 있는가? (What can you do?) |
| **목적** | 사용자의 신원 확인 및 검증 | 리소스 접근 권한 부여 및 제한 |
| **확인 대상** | ID/PW, 생체 정보, OTP 등 | 역할(Role), 권한(Permission), 정책(Policy) |
| **수행 시점** | 시스템 접근의 첫 단계 | 인증 완료 후 리소스 요청 시마다 수행 |
| **예시** | 로그인 성공, 패스워드 일치 확인 | 관리자 페이지 접근 권한, 파일 읽기/쓰기 권한 |
---
## 확장된 인증 요소: 위치 및 행동 기반 인증
전통적인 인증 3요소(지식, 소유, 생체) 외에도, 현대의 보안 시스템은 사용자의 맥락을 분석하는 추가적인 요소를 도입하여 보안성을 높이고 있습니다.
* **위치 기반 인증 (Where you are)**: 사용자가 접속한 IP 주소, GPS 좌표, 접속 국가 등을 분석합니다. 평소 한국에서 접속하던 사용자가 갑자기 해외 IP로 접속을 시도할 경우, 추가 인증을 요구하거나 접근을 차단하는 방식으로 활용됩니다.
* **행동 기반 인증 (How you behave)**: 사용자의 고유한 습관을 분석합니다. 키보드 타이핑 속도, 마우스 움직임의 궤적, 스마트폰을 쥐는 각도 및 터치 압력 등을 학습하여, 신원 정보가 일치하더라도 평소 행동 패턴과 다를 경우 부정 사용으로 간주합니다.
---
## 최신 인증 위협과 심화 대응책
최근의 공격 기법은 단순한 정보 탈취를 넘어, 인증 프로세스의 허점이나 사용자의 심리를 이용하는 방향으로 진화하고 있습니다.
| 위협 유형 | 설명 | 대응 방안 |
| :--- | :--- | :--- |
| **세션 하이재킹 (Session Hijacking)** | 유효한 세션 ID를 가로채어 사용자로 위장하여 시스템에 접근 | 세션 타임아웃 설정, HTTPS 강제 적용, 세션 ID의 주기적 갱신(Rotation) |
| **MFA 피로 공격 (MFA Fatigue)** | 사용자에게 수많은 MFA 푸시 알림을 보내, 실수나 짜증으로 '승인'을 누르게 유도 | 숫자 매칭(Number Matching) 도입, 알림 횟수 제한 및 계정 일시 잠금 |
### MFA 피로 공격 방어 시나리오: 숫자 매칭(Number Matching)
단순한 '승인/거절' 버튼 방식의 푸시 알림은 사용자의 부주의를 유도하기 쉽습니다. 이를 방지하기 위한 **숫자 매칭** 시나리오는 다음과 같습니다.
1. **요청**: 사용자가 로그인 화면에서 ID/PW를 입력합니다.
2. **코드 제시**: 서버는 로그인 화면에 임의의 숫자(예: `42`)를 표시합니다.
3. **푸시 전송**: 사용자의 스마트폰으로 MFA 푸시 알림이 전송됩니다.
4. **검증**: 사용자는 스마트폰 앱 내의 입력창에 로그인 화면에 표시된 숫자 `42`를 직접 입력해야만 인증이 완료됩니다.
5. **결과**: 공격자가 푸시를 무차별적으로 보내더라도, 사용자가 로그인 화면의 숫자를 알 수 없으므로 무분별한 승인을 원천적으로 차단합니다.
---
## 현대적 인증 구현: JWT vs 세션 방식
웹 애플리케이션의 아키텍처(모놀리식 vs 마이크로서비스)에 따라 인증 상태를 유지하는 방식이 달라집니다.
### 1. 세션 기반 인증 (Session-based)
서버의 메모리나 데이터베이스에 사용자 상태를 저장하고, 클라이언트에게는 `Session ID`만 전달하는 방식입니다. 서버가 상태를 관리하는 **Stateful** 구조입니다.
### 2. JWT 기반 인증 (JSON Web Token)
인증 정보를 암호화된 토큰 형태로 클라이언트가 직접 보유하는 방식입니다. 서버는 토큰의 유효성만 검증하며 상태를 저장하지 않는 **Stateless** 구조입니다.
| 비교 항목 | 세션 (Session) | JWT (JSON Web Token) |
| :--- | :--- | :--- |
| **저장 위치** | 서버 (Memory, DB, Redis 등) | 클라이언트 (Local Storage, Cookie 등) |
| **상태 유지** | Stateful (서버가 상태를 기억함) | Stateless (서버가 상태를 기억하지 않음) |
| **확장성** | 서버 확장 시 세션 공유 설정 필요 (Sticky Session 등) | 서버 간 공유 필요 없음 (수평 확장 용이) |
| **제어권** | 서버에서 즉시 세션 만료 가능 (강제 로그아웃) | 토큰 만료 전까지 제어 어려움 (Blacklist 필요) |
| **오버헤드** | 서버 메모리 사용량 증가 | 토큰 크기가 커질수록 네트워크 부하 증가 |
---
## 제로 트러스트(Zero Trust) 모델과 인증
**제로 트러스트(Zero Trust)**는 "절대 믿지 말고, 항상 검증하라(Never Trust, Always Verify)"는 철학을 바탕으로 한 보안 모델입니다. 기존의 경계 보안(Perimeter Security)이 내부 네트워크에 들어온 사용자를 신뢰했던 것과 달리, 제로 트러스트는 네트워크 위치와 상관없이 모든 요청을 잠재적 위협으로 간주합니다.
### 지속적 인증 (Continuous Authentication)
제로 트러스트 환경에서는 최초 1회 로그인으로 인증을 끝내지 않고, 세션이 유지되는 동안 **지속적 인증**을 수행합니다.
* **동적 위험 평가**: 사용자의 IP 변경, 비정상적인 데이터 접근 패턴, 기기 보안 상태 변화 등을 실시간으로 모니터링합니다.
* **적응형 인증 (Adaptive Authentication)**: 위험 점수가 일정 수준을 넘어서면, 세션 도중에도 다시 MFA를 요구하거나 접근 권한을 즉시 회수합니다.
* **최소 권한 원칙**: 인증된 사용자라도 업무 수행에 꼭 필요한 최소한의 권한만 부여하며, 요청 시마다 권한을 재검증합니다.